import request from '@/request.js';
import wx from "wecomjsdk"
import qs from "qs"

let url = "http://1047z5h204.zicp.vip"

function getwxSin(str) {
	return request({
		url: "/api/admin/EnterpriseWinXin/sha1?" + str,
		method: 'get',
	})
}

//配置企业微信权限
function appWXAgentconfig() {
	let noncestr = "qwertyuiopasdfghjklzxcvbnm"
	let timestamp = Date.parse(new Date()).toString().substr(0, 10);
	let fi = `noncestr=${noncestr}&timestamp=${timestamp}&url=${url}&type=agent_config`
	alert("即将发送2次签名"+fi)
	getwxSin(fi).then(res => {
		let {
			msg
		} = res;
		let signature = msg;
		jWeixin.agentConfig({
			corpid: 'ww4f69def50f30e874', // 必填，企业微信的corpid，必须与当前登录的企业一致
			agentid: '1000003', // 必填，企业微信的应用id （e.g. 1000247）
			timestamp: timestamp, // 必填，生成签名的时间戳
			nonceStr: noncestr, // 必填，生成签名的随机串
			signature: signature, // 必填，签名，见附录-JS-SDK使用权限签名算法
			jsApiList: ['getCurExternalContact', 'shareAppMessage'], //必填，传入需要使用的接口名称
			success: function(res) {
				// 回调
				alert("agentConfig ok " + JSON.stringify(res))
			},
			fail: function(res) {
				if (res.errMsg.indexOf('function not exist') > -1) {
					alert('版本过低请升级')
				}
			}
		});
	}).catch(e => {
		alert("初始化网络请求错误" + JSON.stringify(e))
	})
}

function genSinCallBack() {
	let noncestr = "qwertyuiopasdfghjklzxcvbnm"
	let timestamp = Date.parse(new Date()).toString().substr(0, 10);
	// url = window.location.href.split("#")[0];
	let fi = `noncestr=${noncestr}&timestamp=${timestamp}&url=${url}&type=`
	alert("即将发送1次签名"+fi)
	getwxSin(fi).then(res => {
		let {
			msg
		} = res;
		let signature = msg;
		// 注入微信jssdk权限验证配置
		let con = {
			beta: true, // 必须这么写，否则wx.invoke调用形式的jsapi会有问题
			debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
			appId: 'ww4f69def50f30e874', //$store.state.corpId, // 必填，企业微信的corpID
			agentid: '1000003', // 必填，企业微信的应用id （e.g. 1000247）
			timestamp: timestamp, // 必填，生成签名的时间戳
			nonceStr: noncestr, // 必填，生成签名的随机串
			signature: signature, // 必填，签名，见附录1
			jsApiList: ['invoke'], // 必填，需要使用的JS接口列表，所有JS接口列表见附录2
		}
		jWeixin.config(con);

		jWeixin.ready(function() {
			appWXAgentconfig()
		});
		jWeixin.error(function(res) {
			alert("jWeixin error" + res)
		});
	}).catch(e => {
		alert("初始化网络请求错误" + JSON.stringify(e))
	})
}

export function initwxsdk() {
	genSinCallBack()
}
